//
// Copyright (c) 2011 Alex Nesterenko
//

#include "nane/core/crt/std/StdReadFile_.h"

#include <cassert>

namespace nane 
{
    ////////////////////////////////////////////////////////////////////////////////////////////////
    StdReadFile::StdReadFile( FileSystem::Implementation* _creator, FILE* _interface, const char* _filename )
        : StdFileBase( _interface, _filename )
        , SubSystemProduct<FileSystem::Implementation, StdReadFile, IReadFile>( _creator )
    {
        
    }
    ////////////////////////////////////////////////////////////////////////////////////////////////
    StdReadFile::~StdReadFile()
    {
        
    }
    ////////////////////////////////////////////////////////////////////////////////////////////////
    uint32 StdReadFile::read( byte* _buffer, uint32 _count )
    {
        // file must be opened
        assert( m_interface != NULL );
        std::size_t bytesRead = 0;
        bytesRead = std::fread(_buffer, sizeof(unsigned char), _count, m_interface);
        return static_cast<uint32>(bytesRead);        
    }
    ////////////////////////////////////////////////////////////////////////////////////////////////
}   // namespace nane
